//
//  TTInterfaceModel.h
//  WxIOSReaderForiPhone
//
//  Created by apan on 17/5/4.
//  Copyright © 2017年 anzeinfo. All rights reserved.
//

#import <Foundation/Foundation.h>

//*********************************Model(接口模型基类)************************************
#pragma mark - 接口模型基类
/**
 *  接口模型基类
 */
@interface TTInterfaceModel : NSObject
/**
 实现xml到Modal的转换
 
 @param xmlOrJson xml or json
 @return 实例化的模型对象
 */
-(TTInterfaceModel*)Paser:(NSString*)xmlOrJson;
@end


//*********************************Model(JSON)************************************
/*
 解析流程：json->NSDictionary->NSObject
 */
#pragma mark - json格式接口模型基类
/**
 *  接口模型基类
 */
@interface TTInterfaceModelJson : TTInterfaceModel
/**
 YYModal类扩展方法,子类重载以实现类属性与标签的映射
 具体使用方法参考:https://github.com/ibireme/YYModel
 
 @return Dic
 */
+ (NSDictionary *)modelCustomPropertyMapper;
/**
 YYModal类扩展方法，子类重载以实现容器类属性的关联
 
 @return 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。
 */
+ (NSDictionary *)modelContainerPropertyGenericClass;
@end


//*********************************Model(xml)************************************
/*
 解析流程：xml->NSDictionary->NSObject
 */
#pragma mark - xml格式接口模型基类
/**
 *  xml格式接口模型基类
 */
@interface TTInterfaceModelXml : TTInterfaceModel
/**
 实现xml到Modal的转换(如果需要抽取公共参数，该方法可以根据需要重载)
 
 @param xml NSStrring
 @param modalClass 具体的模型类型
 @return 实例化的模型对象
 */
+(TTInterfaceModel*)Paser:(NSString*)xml withModalClass:(Class)modalClass;
/**
 子类重载，以实现xml子节点的数组类型
 具体使用方法参考开源项目HYXMLParser的domo:https://github.com/hillyoung/HYXMLParser
 
 @return NSArray
 */
+(NSArray*)getArrayTitles;
/**
 YYModal类扩展方法,子类重载以实现类属性与标签的映射
 具体使用方法参考:https://github.com/ibireme/YYModel
 
 @return Dic
 */
+ (NSDictionary *)modelCustomPropertyMapper;
/**
 YYModal类扩展方法，子类重载以实现容器类属性的关联
 
 @return 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。
 */
+ (NSDictionary *)modelContainerPropertyGenericClass;
@end
